문제

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • my_stringoverwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ smy_string의 길이 - overwrite_string의 길이

입출력 예

my_string overwrite_string s result
“He11oWor1d” “lloWorl” 2 “HelloWorld”
“Program29b8UYP” “merS123” 7 “ProgrammerS123”

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 “11oWor1”이고 이를 “lloWorl”로 바꾼 “HelloWorld”를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 “29b8UYP”이고 이를 “merS123”로 바꾼 “ProgrammerS123”를 return 합니다.

JS 함수

splice

  • splice(배열의 시작점, 삭제할 위치, 추가할 요소)
  • 배열의 시작하는 부분부터 길이 만큼 삭제하고 새로 추가한 요소를 덮어씀

코드

function solution(my_string, overwrite_string, s) {
  var answer = [];
  answer = my_string.split('');
  answer.splice(s, overwrite_string.length, overwrite_string);
  return answer.join('');
}

코드 해설

  • solution이라는 이름의 함수를 선언하고, my_string (기존 문자열), overwrite_string (덮어쓸 문자열), s (시작 위치) 세 개의 인자를 받는다.
  • 빈 배열 answer를 선언한다.
  • 기존 문자열 my_string을 split 메서드를 사용하여 문자 단위로 분리하여 배열로 변환하고, 이를 answer에 할당한다.
  • 배열 answer에서 인덱스 s부터 시작하여 overwrite_string.length만큼의 부분을 삭제하고, 그 자리에 새로운 문자열 overwrite_string을 삽입한다.
  • 수정된 배열 answer를 다시 문자열로 결합하여 반환한다.